home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / site-packages / Numeric / RNG / Statistics.py < prev   
Text File  |  2006-01-20  |  1KB  |  42 lines

  1. # Various statistics functions.
  2. #
  3. # Written by Konrad Hinsen <hinsen@ibs.ibs.fr>
  4. # last revision: 1997-6-1
  5. #
  6.  
  7. import Numeric
  8.  
  9. #
  10. # Univariate statistics functions
  11. #
  12. def average(data):
  13.     data = Numeric.array(data)
  14.     return Numeric.add.reduce(data)/len(data)
  15.  
  16. def variance(data):
  17.     data = Numeric.array(data)
  18.     return Numeric.add.reduce((data-average(data))**2)/(len(data)-1)
  19.  
  20. def standardDeviation(data):
  21.     data = Numeric.array(data)
  22.     return Numeric.sqrt(variance(data))
  23.  
  24. def histogram(data, nbins, range = None):
  25.     data = Numeric.array(data, Numeric.Float)
  26.     if range is None:
  27.         min = Numeric.minimum.reduce(data)
  28.         max = Numeric.maximum.reduce(data)
  29.     else:
  30.         min, max = range
  31.         data = Numeric.repeat(data,
  32.                               Numeric.logical_and(Numeric.less_equal(data, max),
  33.                                                   Numeric.greater_equal(data,
  34.                                                                         min)))
  35.     bin_width = (max-min)/nbins
  36.     data = Numeric.floor((data - min)/bin_width).astype(Numeric.Int)
  37.     histo = Numeric.add.reduce(Numeric.equal(
  38.         Numeric.arange(nbins)[:,Numeric.NewAxis], data), -1)
  39.     histo[-1] = histo[-1] + Numeric.add.reduce(Numeric.equal(nbins, data))
  40.     bins = min + bin_width*(Numeric.arange(nbins)+0.5)
  41.     return Numeric.transpose(Numeric.array([bins, histo]))
  42.